Smart capture for ATPG (automatic test pattern generation) and fault simulation of scan-based integrated circuits

ABSTRACT

A method for generating stimuli and test responses for testing faults in a scan-based integrated circuit in a selected scan-test mode or a selected self-test mode, the scan-based integrated circuit containing a plurality of scan chains, N clock domains, and C cross-clock domain blocks, each scan chain comprising multiple scan cells coupled in series, each clock domain having one capture clock, each cross-clock domain block comprising a combinational logic network. The method comprises compiling the scan-based integrated circuit into a sequential circuit model; specifying input constraints on the scan-based integrated circuit during a shift and capture operation; specifying a clock grouping to map the N clock domains into G clock domain groups, where N&gt;G&gt;1; transforming the sequential circuit model into an equivalent combinational circuit model according to the input constraints and the clock grouping; and generating the stimuli and test responses on the equivalent combinational circuit model according to the input constraints.

RELATED APPLICATION DATA

This application claims the benefit of U.S. Provisional Application No.60/442,901 filed May 23, 2003, titled “Smart ATPG (Automatic TestPattern Generation) for Scan-Based Integrated Circuits”, which is herebyincorporated by reference.

FIELD OF THE INVENTION

The present invention generally relates to the field of scan-baseddesign and test using design-for-test (DFT) techniques. Specifically,the present invention relates to the field of Scan/ATPG (automatic testpattern generation), Logic BIST (built-in self-test), and CompressedScan/ATPG.

BACKGROUND OF THE INVENTION

In this specification, the term “integrated circuit” is used to describea chip or MCM (multi-chip module) embedded with DFT (design-for-test)techniques.

An integrated circuit or circuit assembly generally contains multipleclocks, which are either generated internally or supplied externally.Each clock is distributed to a set of storage elements via askew-minimized network, which supplies clock pulses to all storageelements essentially at the same time. Such a clock, its related storageelements, and all combinational logic blocks bounded by these storageelements, form a clock domain. While the clock skew within a singleclock domain is designed to be negligible, the clock skew betweendifferent clock domains is unbounded and can vary greatly for differentstorage elements.

Scan-based design is the most widely used design-for-test (DFT) approachfor producing high-quality integrated circuits. Scan-based designrequires that all storage elements in an integrated circuit, such as Dflip-flops, be replaced with their scan-equivalent storage elements,such as Scan D flip-flops, otherwise known as scan cells. These scancells are connected to form one or more scan chains, with each scanchain being controlled by one or more scan enable (SE) signals andcapture clocks (CK) each belonging to a separate clock or frequencydomain.

Testing a scan-based integrated circuit proceeds in a sequence ofshift-in/shift-out operation and capture operation, repeated for apredetermined number of test patterns. During the shift operation, scanenable (SE) signals, local to all scan cells in a clock domain, are usedto configure all scan cells in an integrated circuit into scan chains byselecting the scan data inputs as the input source of all scan cells inthe scan chains, and a predetermined stimuli during scan-test or apseudorandom stimuli during self-test is shifted serially through thescan chains into all scan cells in the circuit. During the captureoperation, the scan enable (SE) signal is used to select the data inputsas the input source of all scan cells to test the functional path of thecircuit using the stimulus loaded during the shift operation.

Automatic test pattern generation (ATPG) and fault simulation are usedto generate the scan test patterns, and to measure their fault coveragerespectively. In order to simplify the ATPG and fault simulationprocess, an event-based logic simulator, as opposed to a timing logicsimulator, is embedded within the ATPG and fault simulation engine, usedto perform the logic simulation of the capture operation of the scanbased test. This makes it impossible to apply the capture clocks ofdifferent clock domains simultaneously during the capture operation andsimulate the results, since the clock skew between different clockdomains would result in incorrect values being captured into some scancells in the event-based simulation. Different approaches for applyingthe capture clocks during the capture operation have been developed inorder to get around this problem.

Prior-art solution #1, see FIG. 2, is commonly referred to as theone-hot method. In this method all capture clocks are used during theshift operation to set up the stimulus, but only one capture clock isapplied during each capture operation. Multiple patterns are used totest the logic paths connected to scan cells belonging to differentclock domains. The main advantage of this method is the simplicity inimplementing the ATPG and fault simulation engine. The main disadvantageof this method is that a large number of test patterns are required totest the circuit, since only one clock domain can be tested in any givenpattern. This further results in longer test time and larger test datavolume, which increases the total test cost.

Prior-art solution #2, see FIG. 3, is described in U.S. Pat. No.6,195,776 by Ruiz et al. (2001). In this approach, a clock order is usedto apply selected capture clocks sequentially during the captureoperation. However, during ATPG and fault simulation, these captureclocks are simulated in parallel while selectively setting unknownvalues (‘X’) on different logic paths, depending on the clock order.This guarantees that the results of the parallel cycle-based simulationwill match the results of the sequential application of the clocksduring the actual capture operation of the test pattern. The mainadvantage of this approach is that it achieves the same fault coverageas prior-art #1 using a smaller set of test vectors and reduced CPUtime. The main disadvantage of this approach is that the test size isstill large, since the ATPG and fault simulator are pessimistic incalculating the fault coverage of different scan test patterns due tothe unknown values.

Prior-art solution #3, see FIG. 4, is described by Lin et al. In thisapproach, a clock order is used to apply selected capture clockssequentially during the capture operation. Multi-timeframe ATPG andfault simulation is used during the capture operation to calculate theexact fault coverage of the test patterns applied. The main advantage ofthis approach is that the test size is smaller than the previous twoapproaches, and can approach the optimal set of test vectors, providedthat all clocks are applied during the capture operation of the ATPG andfault simulation. In practice, this is difficult to perform, since itresults in a dramatic increase in CPU time requirements. In practice,the number of clocks that can be applied is limited, resulting in asub-optimal set of test patterns using longer CPU time.

Prior-art solution #4, see FIG. 5, is described in U.S. patentapplication No. 20020184560 by Wang et al. In this approach, a clockorder is used to apply selected capture clocks sequentially during thecapture operation. A circuit expansion process is used to transform thecircuit into an equivalent combinational circuit model, where logicpaths are expanded to simulate the results of a multi-timeframesimulation with a single time-frame simulation of the expanded circuit.The main advantage of this approach is that its test size is small, andapproaches the optimum set of test vectors for any given circuit.Furthermore, this is accomplished with a realistic increase in memorysize, as opposed to an unrealistic increase in CPU time as in prior-art#3. The main disadvantage of this approach is that the increase inmemory size might prevent the circuit from being able to fit within agiven system memory, and might become un-reasonable as design sizecontinues to grow.

Therefore, there is a need for an improved ATPG and fault simulation,comprising a method and a computer-aided design (CAD) system, that iscapable of achieving high fault coverage using an optimum set of testvectors within reasonable memory size and CPU time.

SUMMARY OF THE INVENTION

Accordingly, the present invention is intended to achieve threeobjectives: (1) providing an improved ATPG (automatic test patterngeneration) and fault simulation method capable of using a cycle-basedlogic simulator to simulate multiple-clock events and generate anoptimal set of test patterns with low memory usage and short CPU time,(2) providing a method for conducting clock grouping and clock orderingautomatically and efficiently, and (3) providing a method to improve theefficiency of the method of prior-art #2 summarized in BACKGROUND anddetailed in U.S. Pat. No. 6,195,776 by Ruiz et al. (2001). The presentinvention further comprises a CAD (computer-aided design) system thatimplements the methods. The present invention is summarized as follow:

(a) Circuit Expansion Based Improvement on ATPG and Fault Simulation

The present invention comprises any method that uses a hybrid ATPG andfault simulation approach capable of selectively using the circuitexpansion or multi-timeframe simulation method in conjunction with anynumber of other prior-art methods. This hybrid method allows the testingof all cross-clock domain blocks in a circuit while meeting inputconstraints regarding required memory usage, required CPU time andrequired test-pattern count. This is done by selectively grouping theclock domains into clock domain groups, and performing circuit expansionor a multi-timeframe simulation on selected clock domain groups andcross-clock domain blocks, while selecting other prior-art methods totest the remaining clock domain groups and cross-clock domain blocks tomeet the required criteria.

(b) Clock Domain Grouping

The purpose of clock grouping in the present invention is to conductcircuit expansion on the combinational logic blocks related to thegrouped clocks. The present invention comprises any method thatidentifies those clocks which, when grouped together and for whichcircuit expansion is conducted, will best improve the performance ofATPG and fault simulation.

(c) Clock Domain Merging

The present invention comprises any method that merges a set of clockdomains together. For example, suppose that one clock domain CD1interacts to another clock domain CD2 through a cross-clock domain logicblock CCD12. Also suppose that CD1 is captured before CD2. Merging CD1and CD2 together means that two-time frames will be used for circuittransformation related to the two clock domains and their correspondingcross-clock domain logic blocks. The benefits are as follows: Even theclock domain CD2 is captured after the clock domain CD1 is captured, thecontrollability of the cross-clock domain logic block CCD12 is stillhigh since the clock domain CD1 is also transformed to obtain the valuesin the clock domain CD1 after it is captured. As a result, all faults inthe cross-clock domain logic block CCD12 can be detected or located. Thebenefit of clock domain grouping is that it can reduce the number ofnecessary ordered sequences of capture clocks.

(d) Domain-Interconnect Graph Based Capture Order Selection

In order to conduct circuit expansion on a clock group, it is necessaryto select a capture order for all the grouped clocks. It is based onsuch an order that a sequential circuit can be transformed into itsequivalent combinational circuit model. The present invention comprisesany method that automatically selects an optimal or near-optimal set ofcapture orders for each clock group based on a domain-interconnectgraph. A domain-interconnect graph is a directed graph, which is used torepresent the relationship among all clock domains. A node represents aclock domain while a directed edge between any two nodes represents thecorresponding cross-clock domain logic block. Such a domain-interconnectgraph can be built based on the result of analyzing clock domains. Basedon such a domain-interconnect graph, an optimal or near-optimal set ofcapture orders can be selected automatically.

(e) Improvement on Unknown-Value Based Multiple Timeframe Handling

As a summarized in BACKGROUND and detailed in U.S. Pat. No. 6,195,776 byRuiz et al. (2001), prior-art #2 simulates all capture clocks inparallel by selectively setting unknown (X) values on different logicpaths, depending on the clock order. The present invention comprises anymethod that generalizes this unknown-value based method into aconstrained-value method. This is achieved by allowing the constrainingof a cross-clock domain logic block with logic values, 1 and 0, as wellas unknown-values, X's, to force an ATPG program to generate patternswhere the cross-clock domain logic block does not change its stateduring a capture operation. As a result, a fault simulator can performan accurate fault simulation of patterns where the cross-clock domainlogic remains in a constant state during a capture operation. Thisfurther improves the accuracy of the fault simulation and ATPG of theunknown-value method. Therefore, a smaller test pattern set and greatermeasured fault coverage can be achieved.

To summarize, the present invention uses a hybrid approach for ATPG andfault simulation based on circuit expansion, which is supported byautomatic clock grouping and capture order selection. In addition, thepresent invention uses a new technique to improve the efficiency of anexisting multiple timeframe handling solution for ATPG and faultsimulation. In conclusion, the present invention provides an efficientsolution to ATPG and fault simulation for testing complicated andlarge-scale scan-based integrated circuits or circuit assemblies byachieving high fault coverage for stuck-at faults, bridging faults, IDDQfaults, transition faults launched from capture, transition faultslaunched from shift, path-delay faults launched from capture, andpath-delay faults launched from shift, with lower memory usage and asmaller number of test patterns.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objects, advantages and features of the inventionwill become more apparent when considered with the followingspecification and accompanying drawings wherein:

FIG. 1 shows a block diagram of a scan-based integrated circuit withthree clock domains, inter-related with each other through sixcross-clock domain blocks;

FIG. 2A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #1;

FIG. 2B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to prior-artsolution #1;

FIG. 2C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to prior-art solution #1;

FIG. 3A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #2;

FIG. 3B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to prior-artsolution #2;

FIG. 3C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to prior-art solution #2;

FIG. 4A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #3;

FIG. 4B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to prior-artsolution #3;

FIG. 4C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to prior-art solution #3;

FIG. 5A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #4;

FIG. 5B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to prior-artsolution #4;

FIG. 5C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to prior-art solution #4;

FIG. 6A shows a flow diagram of the method for ATPG (automatic testpattern generation) and fault simulation with clock grouping and circuitexpansion in scan-test mode, in accordance with the present invention;

FIG. 6B shows a flow diagram of the method for fault simulation withclock grouping and circuit expansion in self-test mode, in accordancewith the present invention;

FIG. 7A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a first embodiment of the present invention;

FIG. 7B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to clock groupingin a first embodiment of the present invention;

FIG. 7C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to clock grouping in a first embodiment of thepresent invention;

FIG. 8A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a second embodiment of the present invention;

FIG. 8B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to clock groupingin a second embodiment of the present invention;

FIG. 8C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to clock grouping in a second embodiment of thepresent invention;

FIG. 9A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a third embodiment of the present invention;

FIG. 9B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to clock groupingin a third embodiment of the present invention;

FIG. 9C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to clock grouping in a third embodiment of thepresent invention;

FIG. 10A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fourth embodiment of the present invention;

FIG. 10B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from capture, with regard to clockgrouping in a fourth embodiment of the present invention;

FIG. 10C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from capture, with regard to clock grouping in a fourthembodiment of the present invention;

FIG. 11A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fifth embodiment of the present invention;

FIG. 11B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from capture, with regard to clockgrouping in a fifth embodiment of the present invention;

FIG. 11C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from capture, with regard to clock grouping in a fifthembodiment of the present invention;

FIG. 12A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a sixth embodiment of the present invention;

FIG. 12B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from capture, with regard to clockgrouping in a sixth embodiment of the present invention;

FIG. 12C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from capture, with regard to clock grouping in a sixthembodiment of the present invention;

FIG. 13A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a seventh embodiment of the present invention;

FIG. 13B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from shift, with regard to clockgrouping in a seventh embodiment of the present invention;

FIG. 13C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from shift, with regard to clock grouping in a seventhembodiment of the present invention;

FIG. 14A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in an eighth embodiment of the present invention;

FIG. 14B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from shift, with regard to clockgrouping in an eighth embodiment of the present invention;

FIG. 14C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from shift, with regard to clock grouping in an eighthembodiment of the present invention;

FIG. 15A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a ninth embodiment of the present invention;

FIG. 15B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from shift, with regard to clockgrouping in a ninth embodiment of the present invention;

FIG. 15C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from shift, with regard to clock grouping in a ninth embodimentof the present invention;

FIG. 16A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a tenth embodiment of the present invention;

FIG. 16B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to clock groupingin a tenth embodiment of the present invention;

FIG. 16C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to clock grouping in a tenth embodiment of thepresent invention;

FIG. 17A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in an eleventh embodiment of the present invention;

FIG. 17B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate stuck-atfaults, bridging faults, or IDDQ faults, with regard to clock groupingin an eleventh embodiment of the present invention;

FIG. 17C shows the scan clock waveforms in actual test application inorder to detect or locate stuck-at faults, bridging faults, or IDDQfaults, with regard to clock grouping in an eleventh embodiment of thepresent invention;

FIG. 18A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a twelfth embodiment of the present invention;

FIG. 18B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from capture, with regard to clockgrouping in a twelfth embodiment of the present invention;

FIG. 18C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from capture, with regard to clock grouping in a twelfthembodiment of the present invention;

FIG. 19A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a thirteenth embodiment of the present invention;

FIG. 19B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from capture, with regard to clockgrouping in a thirteenth embodiment of the present invention;

FIG. 19C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from capture, with regard to clock grouping in a thirteenthembodiment of the present invention;

FIG. 20A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fourteenth embodiment of the present invention;

FIG. 20B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from shift, with regard to clockgrouping in a fourteenth embodiment of the present invention;

FIG. 20C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from shift, with regard to clock grouping in a fourteenthembodiment of the present invention;

FIG. 21A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fifteenth embodiment of the present invention;

FIG. 21B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation in order to detect or locate transitionfaults or path-delay faults launched from shift, with regard to clockgrouping in a fifteenth embodiment of the present invention;

FIG. 21C shows the scan clock waveforms in actual test application inorder to detect or locate transition faults or path-delay faultslaunched from shift, with regard to clock grouping in a fifteenthembodiment of the present invention;

FIG. 22A shows a domain-interconnect graph for 8 inter-related clockdomains;

FIG. 22B shows the fault detection or location range for one orderedsequence of capture clocks for the clock domains shown in FIG. 22A, inaccordance with the present invention, where clock domain grouping isconducted;

FIG. 23A shows a domain-interconnect graph for 5 inter-related clockdomains;

FIG. 23B shows the fault detection or location range for one orderedsequence of capture clocks for the clock domains shown in FIG. 23A, inaccordance with the present invention;

FIG. 23C shows the fault detection or location range for one moreordered sequence of capture clocks for the clock domains shown in FIG.23A, in accordance with the present invention;

FIG. 23D shows the fault detection or location range for one orderedsequence of capture clocks for the clock domains shown in FIG. 23A, inaccordance with the present invention, where clock domain merging isconducted;

FIG. 24A shows a prior art solution for handling uncontrollability whenusing a single time-frame for the multiple-capture scheme;

FIG. 24B shows an embodiment of the method for handlinguncontrollability when using a single time-frame for themultiple-capture scheme, in accordance with the present invention; and

FIG. 25 shows an electronic design automation system, where acomputer-readable program, in accordance with the present invention,performs clock grouping and circuit expansion based ATPG (automatic testpattern generation) and fault simulation for a scan-based integratedcircuit.

DETAILED DESCRIPTION OF THE INVENTION

The following description is presently contemplated as the best mode ofcarrying out the present invention. This description is not to be takenin a limiting sense but is made merely for the purpose of describing theprinciples of the invention. The scope of the invention should bedetermined by referring to the appended claims.

FIG. 1 shows a block diagram of a scan-based integrated circuit 101 withthree inter-related clock domains, CD1 102 to CD3 104, and three scanclocks, CK1 120 to CK3 122. Each clock controls one clock domain. Inaddition, CD1 102 interacts to CD2 103 through the cross-clock domainblock CCD12 105, CD2 103 interacts to CD1 102 through the cross-clockdomain block CCD21 106, CD2 103 interacts to CD3 104 through thecross-clock domain block CCD23 107, CD3 104 interacts to CD2 103 throughthe cross-clock domain block CCD32 108, CD1 102 interacts to CD3 104through the cross-clock domain block CCD13 109, and CD3 104 interacts toCD1 102 through the cross-clock domain block CCD3 1110.

The CUT (circuit-under-test) 101 is a scan-based integrated circuit, inwhich all of its storage cells are replaced with scan cells SC and allscan cells SC are connected into one or more scan chains SCN. Note thata scan cell is usually a clocked storage cell with two input ports, onecalled a data input port and the other called a scan input port,selectable with a scan enable (SE) signal. The data input port isconnected to functional logic, which is used to capture test responses.The scan input port is connected to the output port of another scan cellor to an external scan input signal; this way, a scan chain, i.e. shiftregister, can be formed to bring in test stimuli or bring out capturedtest responses.

The CUT 101 can be tested in either scan-test mode or self-test mode.The two modes differ in how test stimuli, 114 to 116, are generated andprovided, how test responses, 117 to 119, are collected and analyzed,and how scan enable signals, SE1 111 to SE3 113, and scan clocks, CK1120 to CK3 122, are controlled. In scan-test mode, test stimuli, 114 to116, are generated by an ATPG (automatic test pattern generation)program and applied by an ATE (automatic test equipment). The ATE alsocollects and analyzes test responses, 117 to 119, and controls all scanenable signals SE1 111 to SE3 113, and scan clocks, CK1 120 to CK3 122.In self-test mode, test stimuli, 114 to 116, are generated and providedby an on-chip PRPG (pseudo-random pattern generator). The testresponses, 117 to 119, are collected and analyzed by an on-chip MISR(multi-input signature register). Scan enable signals, SE1 111 to SE3113, and scan clocks, CK1 120 to CK3 122, are also controlled by on-chipcircuitry in self-test mode.

In both scan-test and self-test mode, test is conducted by repeating twooperations: namely shift and capture. During a shift operation, all scancells SC are configured into one or more scan chains SCN, i.e. shiftregisters, by properly controlled scan enable signals, SE1 111 to SE3113. Test stimuli, 114 to 116, are then shifted into these scan chainsSCN. During a capture operation, all scan cells SC are configured byproperly controlled scan enable signals, SE1 111 to SE3 113, to catchdata from their data input ports. During this capture operation, testresponses, 117 to 119, corresponding to the test stimuli, 114 to 116,shifted into scan cells during the shift operation are captured intoscan cells SC by activating scan clocks CK1 120 to CK3 122 in one way oranother. During the next shift operation, captured test responses areshifted out of the CUT to either ATE in scan-test mode or to MISR inself-test mode. Note that, at the same time as this shift operation, newtest stimuli are also shifted in.

Obviously, both scan-test and self-test consist of an ATPG and faultsimulation process. Test stimuli are either generated by an ATPG or by aPRPG and fault simulation is often needed to check if a fault isdetected by a test stimulus or test pattern. In ATPG and faultsimulation, it is necessary to assume what logic values are captured astest responses during a capture operation.

If a CUT has only one scan clock, assumed test responses are generallythe same as actual test responses. If a CUT has multiple scan clocks,assumed test responses may be different from actual test responses. Thereason is that there are usually unpredictable clock skews between anytwo clock domains, although clock skews in each clock domain can beminimized through clock tree synthesis. Such cross-clock domain andunpredictable clock skews, if not handled properly in ATPG and faultsimulation, will cause a difference in assumed test responses and actualtest responses. As a result, ATPG results and fault coverage will becomeinaccurate. Therefore, it is critical to take the impact of suchunpredictable clock skews into consideration in ATPG and faultsimulation in order to guarantee correct ATPG and fault simulationresults.

FIG. 2A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #1. 3 nodes are used to represent the 3 clockdomains, CD1 102 to CD3 104. The corresponding scan clocks, CK1 120 toCK3 122, are also shown in the nodes for easy comprehension. Thedirected edge between two nodes represents a cross-clock domain block.For example, the edge 201 represents the cross-clock domain block CCD12105 as shown in FIG. 1.

FIG. 2B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 2C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults (referred to as faults)and with regard to prior-art solution #1.

In order to avoid the impact of unpredictable clock skews amongdifferent clock domains, this solution, also called the one-hottechnique, requires that only one scan clock be activated during eachcapture operation as shown in FIG. 2C. Generally, if scan clocks areactivated in this manner, the circuit behavior during a captureoperation can be fully represented by only one copy of the correspondingcombinational logic portion in the circuit, for the purpose of ATPG andfault simulation. As a result, the impact of unpredictable clock skewscan be easily avoided in ATPG and fault simulation.

As shown in FIG. 2B, whenever the scan clock CK1 120 is activated, allfaults in the clock domain CD1 102 and cross-clock domain blocks, CCD21106 and CCD31 110, can be targeted in ATPG and fault simulation;whenever the scan clock CK2 121 is activated, all faults in the clockdomain CD2 103 and cross-clock domain blocks, CCD12 105 and CCD32 108,can be targeted in ATPG and fault simulation; and whenever the scanclock CK3 122 is activated, all faults in the clock domain CD3 104 andcross-clock domain blocks, CCD13 109 and CCD23 107, can be targeted inATPG and fault simulation. As a result, all faults in the CUT 101 can betargeted in ATPG and fault simulation.

The fault coverage of this solution is usually high since all faults canbe targeted in ATPG and fault simulation. In addition, a combinationalATPG program is enough when test patterns are to be generateddeterministically. Furthermore, its memory usage is low since, in orderto conduct ATPG and fault simulation for one capture operation withregard to one scan clock, it is only necessary to keep the circuit modeldata for the corresponding clock domain and the cross-clock domainblocks that interact to the clock domain. However, the number of testpatterns generated by this solution is large and CPU time is long. Thereasons are that each run of ATPG and fault simulation can only targetfaults in one clock domain and a few corresponding cross-clock domainblocks and that after a capture operation is conducted for a scan clock,a shift operation must be conducted in order to shift out the testresponses and shift in new test stimuli.

FIG. 3A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #2. The meanings of nodes and edges are the same asexplained for FIG. 2A.

FIG. 3B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 3C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults (referred to as faults)and with regard to prior-art solution #2.

As shown in FIG. 3C, this solution requires that scan clocks, CK1 120 toCK3 122, be activated one by one in a selected order during each captureoperation, and that the capture pulse delays between CK1 120 and CK2 121and between CK2 121 and CK3 122 are larger than the possiblecorresponding clock skews. This will guarantee that the test responsescaptured during a capture operation are not affected by unpredictableclock skews.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This solution, however, only selects onecopy of the combinational logic portion corresponding to the so-calledPCE (primary capture event) and uses it for ATPG and fault simulation.Obviously, some constraints on the inputs and outputs of the selectedcopy have to be set to unknown (X) values since other related copies arediscarded.

This solution only needs a combinational ATPG program when test patternsare to be generated deterministically. Its memory usage is also lowsince, in order to handle each capture operation, it is only necessaryto keep one copy of the circuit model data. However, the fault coverageof this solution may be low since unknown values assigned as constraintsmay result in more undetected faults. Some techniques can be used tocontain the impact of unknown values in fault coverage, but may resultin a larger number of test patterns or longer CPU time.

FIG. 4A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #3. The meanings of nodes and edges are the same asexplained for FIG. 2A.

FIG. 4B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 4C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults (referred to as faults)and with regard to prior-art solution #3.

As shown in FIG. 4C, this solution requires that scan clocks, CK1 120 toCK3 122, be activated one by one in a selected order during each captureoperation, and that the capture pulse delays between CK1 120 and CK2 121and between CK2 121 and CK3 122 are larger than the possiblecorresponding clock skews. This will guarantee that the test responsescaptured during a capture operation are not affected by unpredictableclock skews.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This solution processes the multiplecircuit model copies for different timeframes in a serial manner one byone.

When the scan clock CK1 120 is activated, all faults in the clock domainCD1 102 and the cross-clock domain blocks CCD21 106 and CCD31 110 can betargeted in ATPG and fault simulation, corresponding to test stimulishifted-in through scan chains in three clock domains, CD1 102 to CD3104. When the scan clock CK2 121 is activated, all faults in the clockdomain CD2 103 and the cross-clock domain blocks CCD12 105 and CCD32 108can be targeted in ATPG and fault simulation, corresponding to teststimuli shifted-in through scan chains in two clock domains, CD2 103 andCD3 104, as well as test responses captured by CK1 120. When the scanclock CK3 122 is activated, all faults in the clock domain CD3 104 andthe cross-clock domain blocks CCD13 109 and CCD23 107 can be targeted inATPG and fault simulation, corresponding to test stimuli shifted-inthrough scan chains in one clock domain, CD3 104, as well as testresponses captured by CK1 120 and CK2 121.

This solution can target all faults in a whole circuit without the needof assigning any unknown values. As a result, it is possible to achievehigh fault coverage. The number of test pattern is also smaller thanthat of prior-art solution #1 and prior-art solution #2 since a fault inany clock domain or any cross-clock domain block can be targeted in ATPGand fault simulation corresponding to any capture operation. However, asequential ATPG program needs to be used with the capability of handlingmultiple timeframes. This will significantly increase CPU time andmemory usage so that in practice, the number of timeframes may have tobe limited to a rather smaller number than the number of scan clocks.Obviously, this limitation will compromise the usefulness of thissolution.

FIG. 5A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with regard toprior-art solution #4. The meanings of nodes and edges are the same asexplained for FIG. 2A.

FIG. 5B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 5C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults (referred to as faults)and with regard to prior-art solution #4.

As shown in FIG. 5C, this solution requires that scan clocks, CK1 120 toCK3 122, be activated one by one in a selected order during each captureoperation, and that the capture pulse delays between CK1 120 and CK2 121and between CK2 121 and CK3 122 are larger than the possiblecorresponding clock skews. This will guarantee that the test responsescaptured during a capture operation are not affected by unpredictableclock skews.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This solution processes the multiplecircuit model copies for different timeframes all at the same time byconducting circuit expansion to generate a complete set of datacontaining all the circuit model copies. That is, circuit expansion is acircuit modeling technique that uses multiple copies of a block torepresent the different state of the block at different times. Note thatcircuit expansion needs to be conducted under a given order of captureclock pulses. In the example shown in FIG. 5B and FIG. 5C, the captureorder is CK1 120→CK2 121→CK3 122. Different capture orders will resultin different results of circuit expansion. Obviously, after circuitexpansion, it is not necessary to handle scan clocks explicitly and ATPGand fault simulation can be complete conducted on a combinationalcircuit model.

This solution can use a combinational ATPG program when test patternsare to be generated deterministically. Fault coverage is high since allfaults in a whole circuit can be targeted in ATPG and fault simulation.The CPU time is also less than that of prior-art solution #3 since thelatter needs to use a sequential ATPG program. The number of testpattern is smaller than that of prior-art solution #1 and prior-artsolution #2 since a fault in any clock domain or any cross-clock domainblock can be targeted in ATPG and fault simulation corresponding to anycapture operation. However, the memory usage may be high in some casessince multiple copies of the same block may be needed at the same time.

FIG. 6A shows a flow diagram of the method for ATPG (automatic testpattern generation) and fault simulation with clock grouping and circuitexpansion in scan-test mode, in accordance with the present invention.The method accepts the user-supplied RTL (register-transfer level) orgate-level HDL (hardware design language) code 601 representing ascan-based integrated circuit design. In addition, input constraints 602and an optional foundry library 603 are also provided. The inputconstraints 602 contain input constraint information on all clocks andscan enable (SE) signals. This method consists of compilation 604, modeltransformation 607, predetermined pattern fault simulation 609, ATPG610, and post-processing 611. The compilation step 604 compiles the HDLcode 601 into a sequential circuit model 605. The model transformationstep 607 converts the sequential circuit model 605 into an equivalentcombinational circuit model 608. Circuit expansion based on the clockgrouping information 606 is also conducted at this step. Thepredetermined pattern fault simulation step 609 identifies the faultsthat are detected by a set of predetermined patterns. The ATPG step 610generates test patterns for detecting faults. Finally, thepost-processing step 611 generates HDL test benches and ATE (automatictest equipment) test programs 612. All reports and errors are stored inthe report files 613.

FIG. 6B shows a flow diagram of the method for fault simulation withclock grouping and circuit expansion in self-test mode, in accordancewith the present invention. The method accepts the user-supplied RTL(register-transfer level) or gate-level HDL (hardware design language)code 651 representing a scan-based integrated circuit design. Inaddition, input constraints 652 and an optional foundry library 653 arealso provided. The input constraints 652 contain input constraintinformation on all clocks and scan enable (SE) signals. This methodconsists of compilation 654, model transformation 657, pseudo-randompattern fault simulation 659, and post-processing 660. The compilationstep 654 compiles the HDL code 651 into a sequential circuit model 655.The model transformation step 657 converts the sequential circuit model655 into an equivalent combinational circuit model 658. Circuitexpansion based on the clock grouping information 656 is also conductedat this step. The pseudo-random pattern fault simulation step 659identifies the faults that are detected by a set of pseudo-randompatterns. Finally, the post-processing step 660 generates HDL testbenches and ATE (automatic test equipment) test programs 661. Allreports and errors are stored in the report files 662.

FIG. 7A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a first embodiment of the present invention. 3 nodes areused to represent the 3 clock domains, CD1 102 to CD3 104. Thecorresponding scan clocks, CK1 120 to CK3 122, are also shown in thenodes for easy comprehension. The directed edge between two nodesrepresents a cross-clock domain block. For example, the edge 701represents the cross-clock domain block CCD12 105 as shown in FIG. 1. Inaddition, there are two clock groups. One consists of two scan clocks,CK1 120 and CK2 121, as well as the corresponding clock domains, CD1 102and CD2 103. The other consists of one scan clock CK3 122 and itscorresponding clock domain, CD3 104.

FIG. 7B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 7C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults, (referred to asfaults) with regard to clock grouping in a first embodiment of thepresent invention.

This embodiment requires that all scan clocks be grouped into a set ofclock groups and that the scan clocks in only one clock group beactivated during each capture operation. In addition, if a clock groupcontains multiple scan clocks, this embodiment requires that the scanclocks be activated one by one in a selected order and that the capturepulse delay between any scan clocks is larger than the possiblecorresponding clock skew. For example, FIG. 7A shows two scan clockgroups, CG1 707={CK1 120, CK121} and CG2 708={CK3 122}, which capture indifferent capture operations. When clock group CG1 707 captures, acapture order of CK1 120→CK2 121 is used. That is, scan clocks CK1 120and CK2 121 are allowed to capture one by one during a capture operationbut the capture pulse delay between CK1 120 and CK2 121 should be largerthan the possible corresponding clock skew.

Generally, if a clock group contains only one scan clock, the circuitbehavior when the scan clock captures can be fully represented by onlyone copy of the corresponding combinational logic portion in thecircuit. If a clock group contains multiple scan clocks, this embodimentconducts circuit expansion in order to represent the circuit behaviorwith only one set of circuit data. The reason why this is possible isthat circuit expansion uses multiple copies of a logic block torepresent the different state of the block at different times. In FIG.7B, for example, circuit expansion is conducted for clock domains CD1102 and CD2 103. Optionally, circuit expansion can also be conducted forcross-clock domain blocks between CD1 102 and CD2 103. During a captureoperation where scan clocks CK1 120 and CK2 121 capture, all faults inclock domains CD1 102 and CD2 103 as well as cross-clock domain blocksbetween CD1 102 and CD2 103 can be targeted. During a capture operationwhere scan clock CK3 122 captures, all faults in clock domains CD3 104as well as cross-clock domain blocks CCD13 109 and CCD23 107 can betargeted.

This embodiment of the present invention only needs a combinational ATPGprogram when test patterns are to be generated deterministically. Inaddition, this embodiment can alleviate the disadvantages of bothprior-art solution #1 and prior-art solution #4. The number of testpatterns will be smaller than that of prior-art solution #1 since anyfault in clock domains CD1 102 and CD2 103 can be targeted during thesame capture operation. The memory usage will be less than that ofprior-art solution #4 since circuit expansion is only conducted for partof a circuit.

FIG. 8A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a second embodiment of the present invention. The meaningsof nodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 8B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 8C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults, (referred to asfaults) with regard to clock grouping in a second embodiment of thepresent invention.

This embodiment requires that all scan clocks be grouped into a set ofclock groups and that the clock groups be activated one by one in aselected order during each capture operation. In addition, the capturepulse delays between each clock group should be larger than the possiblecorresponding clock skew. Furthermore, if a clock group containsmultiple scan clocks, this embodiment requires that the scan clocks areactivated one by one in a selected order and that the capture pulsedelay between any scan clocks is larger than the possible correspondingclock skew. For example, FIG. 8A shows two scan clock groups, CG1807={CK1 120, CK121} and CG2 808={CK3 122}, which capture one by oneduring any capture operation. When clock group CG1 808 captures, acapture order of CK1 120→CK2 121 is used. That is, scan clocks CK1 120and CK2 121 are allowed to capture one by one during a capture operationbut the capture pulse delay between CK1 120 and CK2 121 should be largerthan the possible corresponding clock skew.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This embodiment only selects one copy ofthe combinational logic portion. Obviously, some constraints on theinputs and outputs of the selected copy have to be set to unknown (X)values since other related copies are discarded. In addition, for thosescan clocks in one clock group, this embodiment conducts circuitexpansion in order to represent the corresponding circuit behavior withonly one set of circuit data. The reason why this is possible is thatcircuit expansion uses multiple copies of a logic block to represent thedifferent state of the block at different times. In FIG. 8B, forexample, circuit expansion is conducted for clock domains CD1 102 andCD2 103. Optionally, circuit expansion can also be conducted forcross-clock domain blocks between CD1 102 and CD2 103. For example, inATPG and fault simulation for the clock domains CD1 102 and CD2 103, itis necessary to assign unknown values to the signal lines coming fromCCD311 110 and CCD32 108. However, only one expanded copy of the clockdomains CD1 102 and CD2 103 is used. This way, the ATPG results areguaranteed to be accurate even clock skews may exist between differentclock domains.

This embodiment of the present invention only needs a combinational ATPGprogram when test patterns are to be generated deterministically. Inaddition, this embodiment can alleviate the disadvantages of bothprior-art solution #2 and prior-art solution #4. The fault coverage ofthis embodiment will be higher than that of prior-art solution #2 sincea smaller number of unknown values are assigned. The memory usage willbe less than that of prior-art solution #4 since circuit expansion isonly conducted for part of a circuit.

FIG. 9A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a third embodiment of the present invention. The meanings ofnodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 9B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 9C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults, (referred to asfaults) with regard to clock grouping in a third embodiment of thepresent invention.

This embodiment requires that all scan clocks be grouped into a set ofclock groups and that the clock groups be activated one by one in aselected order during each capture operation. In addition, the capturepulse delays between each clock group should be larger than the possiblecorresponding clock skew. Furthermore, if a clock group containsmultiple scan clocks, this embodiment requires that the scan clocks areactivated one by one in a selected order and that the capture pulsedelay between any scan clocks is larger than the possible correspondingclock skew. For example, FIG. 9A shows two scan clock groups, CG1907={CK1 120, CK121} and CG2 908={CK3 122}, which capture one by oneduring any capture operation. When clock group CG1 908 captures, acapture order of CK1 120→CK2 121 is assumed. That is, scan clocks CK1120 and CK2 121 are allowed to capture one by one during a captureoperation but the capture pulse delay between CK1 120 and CK2 121 shouldbe larger than the possible corresponding clock skew.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This embodiment processes the multiplecircuit model copies for different timeframes in a series manner one byone. In addition, for those scan clocks in one clock group, thisembodiment conducts circuit expansion in order to represent thecorresponding circuit behavior with only one set of circuit data. Thereason why this is possible is that circuit expansion uses multiplecopies of a logic block to represent the different state of the block atdifferent times. In FIG. 9B, for example, circuit expansion is conductedfor clock domains CD1 102 and CD2 103. Optionally, circuit expansion canalso be conducted for cross-clock domain blocks between CD1 102 and CD2103.

When scan clocks CK1 120 and CK2 121 are activated one by one, allstuck-at faults in the clock domains CD1 102 and CD2 103, as well as thecross-clock domain blocks CCD12 105 and CCD21 106, can be targeted inthe same run of ATPG and fault simulation, corresponding to test stimulishifted-in through scan chains in three clock domains, CD1 102 to CD3104. When the scan clock CK3 122 is activated, all stuck-at fault in theclock domain CD3 104 and the cross-clock domain blocks CCD13 109 andCCD23 107 can be targeted in ATPG and fault simulation, corresponding totest stimuli shifted-in through scan chains in two clock domains, CD2103 and CD3 104, as well as test responses captured by CK1 120 and CK2121.

This embodiment of the present invention can alleviate the disadvantagesof both prior-art solution #3 and prior-art solution #4. A sequentialATPG program needs to be used but with fewer timeframes. This willresult in less CPU time and memory usage than prior-art solution #3. Thememory usage will be less than that of prior-art solution #4 sincecircuit expansion is only conducted for part of a circuit.

FIG. 10A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fourth embodiment of the present invention. The meaningsof nodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 10B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 10C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from capture, withregard to clock grouping in a fourth embodiment of the presentinvention. This embodiment is basically the same as the embodiment shownin FIG. 7. The only difference is that this embodiment uses two at-speedpulses for each capture. This allows this embodiment to detect or locatetransition faults or path-delay faults launched from capture. Refer tothe descriptions of FIG. 7 for more details.

FIG. 11A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fifth embodiment of the present invention. The meanings ofnodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 11B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 11C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from capture, withregard to clock grouping in a fifth embodiment of the present invention.This embodiment is basically the same as the embodiment shown in FIG. 8.The only difference is that this embodiment uses two at-speed pulses foreach capture. This allows this embodiment to detect or locate transitionfaults or path-delay faults launched from capture. Refer to thedescriptions of FIG. 8 for more details.

FIG. 12A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a sixth embodiment of the present invention. The meanings ofnodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 12B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 12C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from capture, withregard to clock grouping in a sixth embodiment of the present invention.This embodiment is basically the same as the embodiment shown in FIG. 9.The only difference is that this embodiment uses two at-speed pulses foreach capture. This allows this embodiment to detect or locate transitionfaults or path-delay faults launched from capture. Refer to thedescriptions of FIG. 9 for more details.

FIG. 13A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a seventh embodiment of the present invention. The meaningsof nodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 13B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 13C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from shift with regardto clock grouping in a seventh embodiment of the present invention. Thisembodiment is basically the same as the embodiment shown in FIG. 7. Theonly difference is that this embodiment uses one at-speed pulse for eachcapture. This allows this embodiment to detect or locate transitionfaults or path-delay faults launched from shift. Refer to thedescriptions of FIG. 7 for more details.

FIG. 14A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in an eighth embodiment of the present invention. The meaningsof nodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 14B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 14C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from shift, with regardto clock grouping in an eighth embodiment of the present invention. Thisembodiment is basically the same as the embodiment shown in FIG. 8. Theonly difference is that this embodiment uses one at-speed pulse for eachcapture. This allows this A embodiment to detect or locate transitionfaults or path-delay faults launched from shift. Refer to thedescriptions of FIG. 8 for more details.

FIG. 15A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a ninth embodiment of the present invention. The meanings ofnodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 15B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 15C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from shift, with regardto clock grouping in a ninth embodiment of the present invention. Thisembodiment is basically the same as the embodiment shown in FIG. 9. Theonly difference is that this embodiment uses one at-speed pulse for eachcapture. This allows this embodiment to detect or locate transitionfaults or path-delay faults launched from shift. Refer to thedescriptions of FIG. 9 for more details.

FIG. 16A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a tenth embodiment of the present invention. The meanings ofnodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 16B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 16C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults, with regard to clockgrouping in a tenth embodiment of the present invention.

This embodiment requires that all scan clocks be grouped into a set ofclock groups and that the scan clocks in only one clock group beactivated during each capture operation. In addition, if a clock groupcontains multiple scan clocks, this embodiment requires that the scanclocks be activated one by one in a selected order and that the capturepulse delay between any scan clocks is larger than the possiblecorresponding clock skew.

Generally, if a clock group contains only one scan clock, the circuitbehavior when the scan clock captures can be fully represented by onlyone copy of the corresponding combinational logic portion in thecircuit. If a clock group contains multiple scan clocks that areactivated one by one in a selected order, the circuit behavior during acapture operation can only be fully represented by several copies of thecorresponding combinational logic portion in the circuit, each with adifferent set of constraints on its inputs and outputs and eachcorresponding to a different timeframe, for the purpose of ATPG andfault simulation. This embodiment processes the multiple circuit modelcopies for different timeframes in a serial manner one by one.

This embodiment of the present invention only needs a sequential ATPGprogram when test patterns are to be generated deterministically. Inaddition, this embodiment can alleviate the disadvantage of prior-artsolution #3 by reducing CPU time and memory usage.

FIG. 17A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in an eleventh embodiment of the present invention. Themeanings of nodes, edges, and clock groups are the same as explained inFIG. 7A.

FIG. 17B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 17C shows the scan clockwaveforms in actual test application, both for detecting or locatingstuck-at faults, bridging faults, or IDDQ faults, with regard to clockgrouping in an eleventh embodiment of the present invention.

This embodiment requires that all scan clocks be grouped into a set ofclock groups and that the scan clocks in all clock groups be activatedduring each capture operation. In addition, this embodiment requiresthat the scan clocks be activated one by one in a selected order andthat the capture pulse delay between any scan clocks is larger than thepossible corresponding clock skew.

Generally, if scan clocks are activated in this manner, the circuitbehavior during a capture operation can only be fully represented byseveral copies of the corresponding combinational logic portion in thecircuit, each with a different set of constraints on its inputs andoutputs and each corresponding to a different timeframe, for the purposeof ATPG and fault simulation. This embodiment processes the multiplecircuit model copies for different timeframes in a series manner one byone for scan clocks in the clock group CG1 1707. However, for the scanclock in the clock group CG2 1708, some constraints on the inputs andoutputs of the corresponding circuit copy are set to unknown (X) values.

This embodiment of the present invention only needs a sequential ATPGprogram when test patterns are to be generated deterministically. Inaddition, this embodiment can alleviate the disadvantages of prior-artsolution #2 and prior-art solution #3 by achieving higher fault coveragewith lower memory usage.

FIG. 18A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a twelfth embodiment of the present invention. The meaningsof nodes, edges, and clock groups are the same as explained in FIG. 7A.

FIG. 18B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 18C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from capture, withregard to clock grouping in a twelfth embodiment of the presentinvention. This embodiment is basically the same as the embodiment shownin FIG. 16. The only difference is that this embodiment uses twoat-speed pulses for each capture. This allows this embodiment to detector locate transition faults or path-delay faults launched from capture.Refer to the descriptions of FIG. 16 for more details.

FIG. 19A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a thirteenth embodiment of the present invention. Themeanings of nodes, edges, and clock groups are the same as explained inFIG. 7A.

FIG. 19B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 19C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from capture, withregard to clock grouping in a thirteenth embodiment of the presentinvention. This embodiment is basically the same as the embodiment shownin FIG. 17. The only difference is that this embodiment uses twoat-speed pulses for each capture. This allows this embodiment to detector locate transition faults or path-delay faults launched from capture.Refer to the descriptions of FIG. 17 for more details.

FIG. 20A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a thirteenth embodiment of the present invention. Themeanings of nodes, edges, and clock groups are the same as explained inFIG. 7A.

FIG. 20B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 20C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from shift, with regardto clock grouping in a thirteenth embodiment of the present invention.This embodiment is basically the same as the embodiment shown in FIG.16. The only difference is that this embodiment uses one at-speed pulsefor each capture. This allows this embodiment to detect or locatetransition faults or path-delay faults launched from shift. Refer to thedescriptions of FIG. 16 for more details.

FIG. 21A shows the domain-interconnect graph used to represent therelationship among the clock domains shown in FIG. 1, with clockgrouping in a fifteenth embodiment of the present invention. Themeanings of nodes, edges, and clock groups are the same as explained inFIG. 7A.

FIG. 21B shows the scan clock waveforms in ATPG (automatic test patterngeneration) and fault simulation and FIG. 21C shows the scan clockwaveforms in actual test application, both for detecting or locatingtransition faults or path-delay faults launched from shift, with regardto clock grouping in a fifteenth embodiment of the present invention.This embodiment is basically the same as the embodiment shown in FIG.17. The only difference is that this embodiment uses one at-speed pulsefor each capture. This allows this embodiment to detect or locatetransition faults or path-delay faults launched from shift. Refer to thedescriptions of FIG. 17 for more details.

FIG. 22A shows a domain-interconnect graph used to represent therelationship among 8 inter-related clock domains, CD1 2201 to CD8 2208.Here, 8 vertexes are used to represent the 8 clock domains, CD1 2201 toCD8 2208. The corresponding clocks, CK1 2221 to CK8 2228, for the clockdomains are also shown in the vertexes for the purpose of easycomprehension. The directed arc between any two vertexes represents across-clock domain logic block. For example, the arc 2232 represents thecross-clock domain logic block from the clock domain CD2 2202 to theclock domain CD1 2201.

FIG. 22B shows the fault detection or location range for one orderedsequence of capture clocks for the clock domains shown in FIG. 22A, inaccordance with the present invention, where clock domain grouping isconducted.

Since clock domains CD7 2207 and CD8 2208 do not interact with eachother, they can be captured at the same time. In addition, since clockdomains CD3 2203 and CD5 2205 do not interact with each other, they canbe captured at the same time. Similarly, since clock domains CD3 2203and CD6 2206 do not interact with each other, they can be captured atthe same time. However, since clock domains CD5 2205 and CD6 2206interact with each other, they cannot be captured at the same time.Based on this analysis, it can be seen the ordered sequence of captureclocks can be picked up as follows: {CK7 2227, CK8 2228}→CK1 2221→CK22222→{CK3 2223, CK5 2225}→CK6 2226→CK4 2224. Alternatively, the orderedsequence of capture clocks can be picked up as follows: {CD7 2227, CD82228}→CD1 2221→CK2 2222→{CK3 2223, CK6 2224}→CK5 2225→CK4 2224. That is,some clock domains can be grouped together and captured simultaneously.This will reduce test time.

FIG. 23A shows a domain-interconnect graph used to represent therelationship among 5 inter-related clock domains, CD1 2301 to CD4 2305.Here, 5 vertexes are used to represent the 5 clock domains, CD1 2301 toCD4 2305. The corresponding clocks, CK1 2321 to CK5 2325, for the clockdomains are also shown in the vertexes for the purpose of easycomprehension. The directed arc between any two vertexes represents across-clock domain logic block. For example, the arc 2351 represents thecross-clock domain logic block from the clock domain CD2 2302 to theclock domain CD1 2301.

FIG. 23B shows the fault detection or location range for one orderedsequence of capture clocks, {CK1 2321, CK5 2325}→CK2 2322→CK3 2323→CK42324, for the clock domains, CD1 2321 to CD4 2324, shown in FIG. 23A, inaccordance with the present invention. The ordered sequence of captureclocks is determined automatically based on the domain-interconnectgraph shown in FIG. 23A. It can also be specified directly.

Note that test stimuli are shifted into the scan chains in all clockdomains simultaneously. Then the capture operation is conducted in thefollowing manner: First, the clocks CK1 2321 and CK5 2325, which do notinteract with each other, capture. As a result, faults in the clockdomain CD1 2301 as well as in the cross-clock domain logic blocks 2351and 2357 can be detected or located. In addition, faults in the clockdomain CD5 2305 as well as in the cross-clock domain logic blocks 2356and 2359 can be detected or located. Second, the clock CK2 2322captures. As a result, faults in the clock domain CD2 2302 as well as inthe cross-clock domain logic block 2352 can be detected or located.Third, the clock CK3 2323 captures. As a result, faults in the clockdomain CD3 2303 as well as in the cross-clock domain logic block 2354can be detected or located. Fourth, the clock CK4 2324 captures. As aresult, faults in the clock domain CD4 2304 can be detected or located.

Obviously, after ATPG is conducted for the ordered sequence of captureclocks, {CK1 2321, CK5 2325}→CK2 2322→CK3 2323→CK4 2324, all faultsexcept those in the cross-clock domain logic blocks represented by thearcs 2353 and 2355 can be detected or located. The reason is that, whenthe clocks CK2 2322 and CK3 2323 capture, test responses will becaptured into all scan cells in the clock domains CD2 2302 and CD3 2303,replacing any previous values shifted into these scan cells when theclocks CK3 2323 and CK4 2324 capture, respectively.

FIG. 23C shows the fault detection or location range for one moreordered sequence of capture clocks, CK4 2324→CK3 2323, for the clockdomains, CD4 2304 to CD3 2303, shown in FIG. 23A, in accordance with thepresent invention. The ordered sequence of capture clocks is determinedautomatically based on the domain-interconnect graph shown in FIG. 23A.It can also be specified directly.

Note that test stimuli are shifted into the scan chains in all clockdomains simultaneously. Then the capture operation is conducted in thefollowing manner: First, the clock CK4 2324 captures. As a result,faults in the clock domain CD4 2304 as well as in the cross-clock domainlogic block 2355 can be detected or located. Second, the clock CK3 2323captures. As a result, faults in the clock domain CD3 2303 as well as inthe cross-clock domain logic block 2353 can be detected or located.

Combined with results shown in FIG. 23B, it can be seen that all faultsin the scan-based integrated circuit can be detected or located, afterusing these two ordered sequence of capture clocks.

FIG. 23D shows the fault detection or location range for one orderedsequence of capture clocks, {CK1 2321, CK5 2325}→CK2 2322→CK3 2323→CK42324, for the clock domains, CD1 2301 to CD4 2304, shown in FIG. 23A, inaccordance with the present invention, where clock domain merging isconducted.

In this case, three clock domains, CD2 2302, CD3 2303, and CD4 2304, aremerged together. It means that two-time frames will be used for circuittransformation related to these three clock domains and theircorresponding cross-clock domain logic blocks. The benefits are asfollows: Even the clock CK3 2323 captures after the clock CK2 2322 does,the controllability of the cross-clock domain logic block 2353 is stillhigh since the clock domain CD2 2302 is also transformed to obtain thevalues in the clock domain CD2 2302 after the clock CK2 2322 captures.As a result, all faults in the cross-clock domain logic block 2353 canbe detected or located. In addition, even the clock CK4 2324 capturesafter the clocks CK2 2322 and CK3 2323 do, the controllability of thecross-clock domain logic block 2355 is still high since the clockdomains CD2 2302 and CD3 2303 as well as the cross-clock domain logicblock 2353 are also transformed to obtain the values in the clockdomains CD2 2302 and CD3 2303 as well as the cross-clock domain logicblock 2353 after the clocks CK2 2322 and CK3 2323 capture. As a result,all faults in the cross-clock domain logic block 2355 can be detected orlocated. That is, by merging the 3 clock domains, CD2 2302, CD3 2303,and CD4 2304, only one ordered sequence of capture clocks is enough todetect or locate all faults in the scan-based integrated circuit.

FIG. 24A shows a prior art solution for handling uncontrollability whenusing a single time-frame in the multiple-capture scheme. The clockdomain CD1 2401 interacts to the clock domain CD2 2402 through thecross-clock domain logic block CCD12 2403. The Q output 2409 of the scancell SC1 2404, driven by the clock CK1 2406, is connected to thecross-clock domain logic block CCD12 2403. The D input 2410 of the Dinput of the scan cell SC2 2405, driven by the clock CK2 2407, isconnected to the cross-clock domain logic block CCD12 2403.

Suppose that the clock CK1 2406 is activated before the clock CK2 2407is activated in the multiple-capture scheme. When the clock CK1 2406captures, the clock domain CD1 2401 needs to be transformed during ATPG(automatic test pattern generation) for detecting or locating all faultsin the clock domain CD1 2401. Note that, after the clock CK1 2406 isactivated, test responses will be captured into all scan cells in theclock domain CD1 2401, replacing any previous values shifted into thesescan cells. Now, when the clock CK2 2407 captures, the clock domain CD12401, the cross-clock domain CCD12 2403, and the clock domain CD2 2402need to be transformed during ATPG for detecting or locating all faultsin the cross-clock domain logic block CCD12 303 and the clock domain CD22402. Here, two time-frames are involved: the first one for CK1 2406 andthe second one for CK2 2407. The purpose of transforming the clockdomain CD1 2401 is to get the values for the first time-frame for CK12406.

Due to the ATPG memory consumption issue, it is sometimes desirable touse a single time-frame even in the multiple-capture scheme for multiplecapture clocks. In this example, this means to transform only thecross-clock domain CCD12 2403 and the clock domain CD2 2402 during ATPGwhen the clock CK2 2407 captures. The advantage of this approach is thatit reduces memory usage during ATPG. However, it is necessary to providea solution to handle the values provided from the clock domain CD1 2401to the cross-clock domain logic block CCD21 2403.

A prior art solution for handling this uncontrollability issue is to useunknown values, represented by X. As shown in FIG. 24A, X is assigned tothe Q output 2409 of the scan cell SC1 2404. The disadvantage of thissolution is that it reduces the controllability significantly, whichwill results in a larger set of test patterns with lower fault coverage.

FIG. 24B shows an embodiment of the method for handlinguncontrollability when using a single time-frame in the multiple-capturescheme, in accordance with the present invention.

Same as the case shown in FIG. 24A, if the clock CK1 2406 capturesbefore the clock CK2 2407 captures, test responses will be captured intoall scan cells in the clock domain CD1 2401, replacing any previousvalues shifted into these scan cells. Suppose that a single time-frameneeds to be used in the multiple-capture scheme for multiple captureclocks in order to reduce memory usage. In this example, this means totransform only the cross-clock domain CCD12 2403 and the clock domainCD2 2402 during ATPG when the clock CK2 2407 captures. Obviously, it isnecessary to provide a solution to handle the values provided from theclock domain CD1 2401 to the cross-clock domain logic block CCD21 2403.

In order to handle this uncontrollability issue, the present inventionmakes sure that the value of the Q output 2409 of the scan cell SC1 2404remains the same before and after the clock CK1 2406 captures. This canbe achieved by setting a proper value either to the D input 2408 or theR (reset) input 2411 of the scan cell SC1 2404. Since a logic value, 0or 1, is used instead of an unknown value X, the controllability for thecross-clock domain CCD12 2403 and the clock domain CD2 2402 can beimproved significantly. This will result in a smaller set of testpatterns with higher fault coverage.

FIG. 25 shows an electronic design automation system which includes aprocessor 2502, a bus 2505 coupled to the processor, a computer-readablememory 2501 coupled to the bus, an input device 2503, and an outputdevice 2504. The computer-readable memory 2501 contains acomputer-readable program, in accordance with the present invention anddescribed in FIG. 6A and FIG. 6B, to cause the electronic designautomation system to perform a method of ATPG (automatic test patterngeneration) and fault simulation based on clock grouping and circuitexpansion for testing a scan-based integrated in scan-test mode orself-test mode.

The processor 2502 may represent a central processing unit of a personalcomputer, workstation, mainframe computer or other suitable digitalprocessing device. The memory 2501 can be an electronic memory or amagnetic or optical disk-based memory, or various combinations thereof.A designer interacts with the clock grouping and circuit expansion basedATPG and fault simulation software run by the processor 2502 to provideappropriate inputs via an input device 2503, which may be a keyboard,disk drive or other suitable source of design information. The processor2502 provides outputs to the designer via an output device 2504, whichmay be a display, a printer, a disk drive or various combinations ofthese and other elements.

Having thus described presently preferred embodiments of the presentinvention, it can now be appreciated that the objectives of theinvention have been fully achieved. And it will be understood by thoseskilled in the art that many changes in construction and circuitry, andwidely differing embodiments and applications of the invention willsuggest themselves without departing from the spirit and scope of thepresent invention. The disclosures and the description herein areintended to be illustrative and are not in any sense limitation of theinvention, more preferably defined in scope by the following claims.

1. A method for generating stimuli and test responses for testing faultsin a scan-based integrated circuit in a selected scan-test mode or aselected self-test mode, the scan-based integrated circuit containing aplurality of scan chains, N clock domains, and C cross-clock domainblocks, each scan chain comprising multiple scan cells coupled inseries, each clock domain having one capture clock, each cross-clockdomain block comprising a combinational logic network; said methodcomprising the computer implemented steps of: (a) compiling a HDL(hardware description language) code modeled at RTL (register-transferlevel) or at gate-level that represents said scan-based integratedcircuit into a sequential circuit model; (b) specifying inputconstraints on said scan-based integrated circuit during a shift andcapture operation; (c) specifying a clock grouping to map said N clockdomains into G clock domain groups, where N>G>1; (d) transforming saidsequential circuit model into an equivalent combinational circuit modelaccording to said input constraints and said clock grouping, byselectively performing circuit expansion on selected cross-clock domainblocks and selected clock domains embedded completely within selectedclock domain groups, and selectively performing circuit expansion onselected cross-clock domain blocks across selected clock domain groups,said selected clock domain groups in said G clock domain groups, saidselected clock domains in said N clock domains, and said selectedcross-clock domain blocks in said C cross-clock domain blocks; and (e)generating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints.
 2. Themethod of claim 1, wherein said specifying a clock grouping to map saidN clock domains into G clock domain groups further comprisesautomatically generating said clock grouping based on said sequentialcircuit model and said input constraints.
 3. The method of claim 1,wherein said generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints further comprises performing fault simulation on saidequivalent combinational circuit model selectively using a selected setof predetermined patterns as said stimuli and said test responses insaid selected scan-test mode, or a selected set of pseudorandom patternsas said stimuli and said test responses in said selected self-test mode.4. The method of claim 3, wherein said performing fault simulation onsaid equivalent combinational circuit model further comprisesselectively using a one-hot method to perform said fault simulation on aplurality of selected first unexpanded blocks, wherein each saidselected first unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 5. The method of claim 4, whereinsaid one-hot method further comprises testing said plurality of selectedfirst unexpanded blocks one at a time by selectively applying a selectedcapture clock connected to one or more said selected first unexpandedblocks while disabling all other capture clocks connected to other saidselected first unexpanded blocks during a selected capture operation. 6.The method of claim 3, wherein said performing fault simulation on saidequivalent combinational circuit model further comprises selectivelyusing a constrained-value method to perform said fault simulation on aplurality of selected second unexpanded blocks, wherein each saidselected second unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 7. The method of claim 6, whereinsaid constrained-value method further comprises testing said pluralityof selected second unexpanded blocks by setting constrained (‘0’, ‘1’,‘X’) values on all said plurality of selected second unexpanded blocksand applying all capture clocks connected to said plurality of selectedsecond unexpanded blocks simultaneously during a selected captureoperation.
 8. The method of claim 3, wherein said performing faultsimulation on said equivalent combinational circuit model furthercomprises selectively using a multi-timeframe fault simulation method toperform said fault simulation on a plurality of selected thirdunexpanded blocks, wherein each said selected third unexpanded block isa clock domain in said N clock domains that is not in said selectedclock domains, or a cross-clock domain block in said C cross-clockdomain blocks that is not in said selected cross-clock domain blocks. 9.The method of claim 8, wherein said multi-timeframe fault simulationmethod further comprises testing said plurality of selected thirdunexpanded blocks by performing said fault simulation on said selectedthird unexpanded blocks by applying all capture clocks connected to saidselected third unexpanded blocks sequentially during a selected captureoperation.
 10. The method of claim 1, wherein said generating saidstimuli and said test responses on said equivalent combinational circuitmodel according to said input constraints further comprises performingcombinational ATPG (automatic test pattern generation) on saidequivalent combinational circuit model to generate said stimuli and saidtest responses in said selected scan-test mode.
 11. The method of claim10, wherein said performing combinational ATPG on said equivalentcombinational circuit model further comprises selectively using aone-hot method to perform said fault simulation on a plurality ofselected fourth unexpanded blocks, wherein each said selected fourthunexpanded block is a clock domain in said N clock domains that is notin said selected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 12. The method of claim 11, wherein said one-hot methodfurther comprises testing said plurality of selected fourth unexpandedblocks one at a time by selectively applying a selected capture clockconnected to one or more said selected fourth unexpanded blocks whiledisabling all other capture clocks connected to other said selectedfourth unexpanded blocks during a selected capture operation.
 13. Themethod of claim 10, wherein said performing combinational ATPG on saidequivalent combinational circuit model further comprises selectivelyusing a constrained-value method to perform said fault simulation on aplurality of selected fifth unexpanded blocks, wherein each saidselected fifth unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 14. The method of claim 13, whereinsaid constrained-value method further comprises testing said pluralityof selected second unexpanded blocks by setting constrained (‘0’, ‘1’,‘X’) values on all said plurality of selected fifth unexpanded blocksand applying all capture clocks connected to said plurality of selectedfifth unexpanded blocks simultaneously during a selected captureoperation.
 15. The method of claim 10, wherein said performingcombinational ATPG on said equivalent combinational circuit modelfurther comprises selectively using a multi-timeframe fault simulationmethod to perform said fault simulation on a plurality of selected sixthunexpanded blocks, wherein each said selected sixth unexpanded block isa clock domain in said N clock domains that is not in said selectedclock domains, or a cross-clock domain block in said C cross-clockdomain blocks that is not in said selected cross-clock domain blocks.16. The method of claim 15, wherein said multi-timeframe faultsimulation method further comprises testing said plurality of selectedsixth unexpanded blocks by performing said fault simulation on saidselected sixth unexpanded blocks by applying all capture clocksconnected to said selected sixth unexpanded blocks sequentially during aselected capture operation.
 17. The method of claim 1, wherein saidspecifying input constraints on said scan-based integrated circuitfurther comprises specifying an ordered sequence of selected captureclocks in said capture operation. X
 18. The method of claim 17, whereinsaid specifying an ordered sequence of selected capture clocks furthercomprises performing clock-domain analysis on said sequential circuitmodel for generating an optimal ordered sequence of selected captureclocks automatically.
 19. The method of claim 18, wherein saidperforming clock-domain analysis on said sequential circuit model forgenerating an optimal ordered sequence of selected capture clocksfurther comprises the computer implemented steps of: (f) constructing adomain-interconnect graph comprising a plurality of vertexes and arcs,each said vertex denoting one of said N clock domains, and each said arcdenoting one of said C cross-clock domains; and (g) analyzing saiddomain-interconnect graph to find said optimal ordered sequence ofcapture clocks.
 20. The method of claim 19, wherein analyzing saiddomain-interconnect graph to find said optimal ordered sequence ofcapture clocks further comprises the computer implemented steps of: (h)breaking one selected arc from each vertex-pair with bi-directionallinks to form a directed graph; and (i) levelizing said directed graphto obtain said optimal ordered sequence of capture clocks.
 21. Themethod of claim 20, wherein said levelizing said directed graph toobtain said optimal ordered sequence of capture clocks further comprisesanalyzing said directed graph to determine which selected vertexes (orselected clock domains) do not interact each other directly orindirectly, and selectively replacing said capture clocks controllingsaid selected clock domains with one or more grouped capture clocks. 22.The method of claim 18, wherein said performing clock-domain analysis onsaid sequential circuit model for generating an optimal ordered sequenceof capture clocks further comprises applying said optimal orderedsequence of capture clocks in reverse order.
 23. The method of claim 22,wherein said applying said optimal ordered sequence of capture clocks inreverse order further comprises removing one or more selected captureclocks from said optimal ordered sequence of capture clocks in reverseorder.
 24. The method of claim 1, wherein said generating said stimuliand said test responses on said equivalent combinational circuit modelaccording to said input constraints further comprises generating HDLtest benches according to said stimuli and said test responses forverifying the correctness of said scan-based integrated circuit usingsimulation methods.
 25. The method of claim 1, wherein said generatingsaid stimuli and said test responses on said equivalent combinationalcircuit model according to said input constraints further comprisesgenerating ATE (automatic test equipment) test programs according tosaid stimuli and said test responses for verifying the correctness ofsaid scan-based integrated circuit in said ATE.
 26. The method of claim1, wherein said faults further include selected stuck-at faults,selected transition faults selectively launched from shift or launchedfrom capture, selected path-delay faults selectively launched from shiftor launched from capture, selected IDDQ (IDD quiescent current) faults,and selected bridging faults.
 27. A computer-readable memory havingcomputer-readable program code embodied therein for causing a computersystem to perform a method for generating stimuli and test responses fortesting faults in a scan-based integrated circuit in a selectedscan-test mode or a selected self-test mode, the scan-based integratedcircuit containing a plurality of scan chains, N clock domains, and Ccross-clock domain blocks, each scan chain comprising multiple scancells coupled in series, each clock domain having one capture clock,each cross-clock domain block comprising a combinational logic network;said method comprising the computer implemented steps of: (a) compilinga HDL (hardware description language) code modeled at RTL(register-transfer level) or at gate-level that represents saidscan-based integrated circuit into a sequential circuit model; (b)specifying input constraints on said scan-based integrated circuitduring a shift and capture operation; (c) specifying a clock grouping tomap said N clock domains into G clock domain groups, where N>G>1; (d)transforming said sequential circuit model into an equivalentcombinational circuit model according to said input constraints and saidclock grouping, by selectively performing circuit expansion on selectedcross-clock domain blocks and selected clock domains embedded completelywithin selected clock domain groups, and selectively performing circuitexpansion on selected cross-clock domain blocks across selected clockdomain groups, said selected clock domain groups in said G clock domaingroups, said selected clock domains in said N clock domains, and saidselected cross-clock domain blocks in said C cross-clock domain blocks;and (e) generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints.
 28. The computer-readable memory of claim 27, wherein saidspecifying a clock grouping to map said N clock domains into G clockdomain groups further comprises automatically generating said clockgrouping based on said sequential circuit model and said inputconstraints.
 29. The computer-readable memory of claim 27, wherein saidgenerating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints furthercomprises performing fault simulation on said equivalent combinationalcircuit model selectively using a selected set of predetermined patternsas said stimuli and said test responses in said selected scan-test mode,or a selected set of pseudorandom patterns as said stimuli and said testresponses in said selected self-test mode.
 30. The computer-readablememory of claim 29, wherein said performing fault simulation on saidequivalent combinational circuit model further comprises selectivelyusing a one-hot method to perform said fault simulation on a pluralityof selected first unexpanded blocks, wherein each said selected firstunexpanded block is a clock domain in said N clock domains that is notin said selected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 31. The computer-readable memory of claim 30, whereinsaid one-hot method further comprises testing said plurality of selectedfirst unexpanded blocks one at a time by selectively applying a selectedcapture clock connected to one or more said selected first unexpandedblocks while disabling all other capture clocks connected to other saidselected first unexpanded blocks during a selected capture operation.32. The computer-readable memory of claim 29, wherein said performingfault simulation on said equivalent combinational circuit model furthercomprises selectively using a constrained-value method to perform saidfault simulation on a plurality of selected second unexpanded blocks,wherein each said selected second unexpanded block is a clock domain insaid N clock domains that is not in said selected clock domains, or across-clock domain block in said C cross-clock domain blocks that is notin said selected cross-clock domain blocks.
 33. The computer-readablememory of claim 32, wherein said constrained-value method furthercomprises testing said plurality of selected second unexpanded blocks bysetting constrained (‘0’, ‘1’, ‘X’) values on all said plurality ofselected second unexpanded blocks and applying all capture clocksconnected to said plurality of selected second unexpanded blockssimultaneously during a selected capture operation.
 34. Thecomputer-readable memory of claim 29, wherein said performing faultsimulation on said equivalent combinational circuit model furthercomprises selectively using a multi-timeframe fault simulation method toperform said fault simulation on a plurality of selected thirdunexpanded blocks, wherein each said selected third unexpanded block isa clock domain in said N clock domains that is not in said selectedclock domains, or a cross-clock domain block in said C cross-clockdomain blocks that is not in said selected cross-clock domain blocks.35. The computer-readable memory of claim 34, wherein saidmulti-timeframe fault simulation method further comprises testing saidplurality of selected third unexpanded blocks by performing said faultsimulation on said selected third unexpanded blocks by applying allcapture clocks connected to said selected third unexpanded blockssequentially during a selected capture operation.
 36. Thecomputer-readable memory of claim 27, wherein said generating saidstimuli and said test responses on said equivalent combinational circuitmodel according to said input constraints further comprises performingcombinational ATPG (automatic test pattern generation) on saidequivalent combinational circuit model to generate said stimuli and saidtest responses in said selected scan-test mode.
 37. Thecomputer-readable memory of claim 36, wherein said performingcombinational ATPG on said equivalent combinational circuit modelfurther comprises selectively using a one-hot method to perform saidfault simulation on a plurality of selected fourth unexpanded blocks,wherein each said selected fourth unexpanded block is a clock domain insaid N clock domains that is not in said selected clock domains, or across-clock domain block in said C cross-clock domain blocks that is notin said selected cross-clock domain blocks.
 38. The computer-readablememory of claim 37, wherein said one-hot method further comprisestesting said plurality of selected fourth unexpanded blocks one at atime by selectively applying a selected capture clock connected to oneor more said selected fourth unexpanded blocks while disabling all othercapture clocks connected to other said selected fourth unexpanded blocksduring a selected capture operation.
 39. The computer-readable memory ofclaim 36, wherein said performing combinational ATPG on said equivalentcombinational circuit model further comprises selectively using aconstrained-value method to perform said fault simulation on a pluralityof selected fifth unexpanded blocks, wherein each said selected fifthunexpanded block is a clock domain in said N clock domains that is notin said selected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 40. The computer-readable memory of claim 39, whereinsaid constrained-value method further comprises testing said pluralityof selected second unexpanded blocks by setting constrained (‘0’, ‘1’,‘X’) values on all said plurality of selected fifth unexpanded blocksand applying all capture clocks connected to said plurality of selectedfifth unexpanded blocks simultaneously during a selected captureoperation.
 41. The computer-readable memory of claim 36, wherein saidperforming combinational ATPG on said equivalent combinational circuitmodel further comprises selectively using a multi-timeframe faultsimulation method to perform said fault simulation on a plurality ofselected sixth unexpanded blocks, wherein each said selected sixthunexpanded block is a clock domain in said N clock domains that is notin said selected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 42. The computer-readable memory of claim 41, whereinsaid multi-timeframe fault simulation method further comprises testingsaid plurality of selected sixth unexpanded blocks by performing saidfault simulation on said selected sixth unexpanded blocks by applyingall capture clocks connected to said selected sixth unexpanded blockssequentially during a selected capture operation.
 43. Thecomputer-readable memory of claim 27, wherein said specifying inputconstraints on said scan-based integrated circuit further comprisesspecifying an ordered sequence of selected capture clocks in saidcapture operation.
 44. The computer-readable memory of claim 43, whereinsaid specifying an ordered sequence of selected capture clocks furthercomprises performing clock-domain analysis on said sequential circuitmodel for generating an optimal ordered sequence of selected captureclocks automatically.
 45. The computer-readable memory of claim 44,wherein said performing clock-domain analysis on said sequential circuitmodel for generating an optimal ordered sequence of selected captureclocks further comprises the computer implemented steps of: (f)constructing a domain-interconnect graph comprising a plurality ofvertexes and arcs, each said vertex denoting one of said N clockdomains, and each said arc denoting one of said C cross-clock domains;and (g) analyzing said domain-interconnect graph to find said optimalordered sequence of capture clocks.
 46. The computer-readable memory ofclaim 45, wherein analyzing said domain-interconnect graph to find saidoptimal ordered sequence of capture clocks further comprises thecomputer implemented steps of: (h) breaking one selected arc from eachvertex-pair with bi-directional links to form a directed graph; and (i)levelizing said directed graph to obtain said optimal ordered sequenceof capture clocks.
 47. The computer-readable memory of claim 46, whereinsaid levelizing said directed graph to obtain said optimal orderedsequence of capture clocks further comprises analyzing said directedgraph to determine which selected vertexes (or selected clock domains)do not interact each other directly or indirectly, and selectivelyreplacing said capture clocks controlling said selected clock domainswith one or more grouped capture clocks.
 48. The computer-readablememory of claim 44, wherein said performing clock-domain analysis onsaid sequential circuit model for generating an optimal ordered sequenceof capture clocks further comprises applying said optimal orderedsequence of capture clocks in reverse order.
 49. The computer-readablememory of claim 48, wherein said applying said optimal ordered sequenceof capture clocks in reverse order further comprises removing one ormore selected capture clocks from said optimal ordered sequence ofcapture clocks in reverse order.
 50. The computer-readable memory ofclaim 27, wherein said generating said stimuli and said test responseson said equivalent combinational circuit model according to said inputconstraints further comprises generating HDL test benches according tosaid stimuli and said test responses for verifying the correctness ofsaid scan-based integrated circuit using simulation methods.
 51. Thecomputer-readable memory of claim 27, wherein said generating saidstimuli and said test responses on said equivalent combinational circuitmodel according to said input constraints further comprises generatingATE (automatic test equipment) test programs according to said stimuliand said test responses for verifying the correctness of said scan-basedintegrated circuit in said ATE.
 52. The computer-readable memory ofclaim 27, wherein said faults further include selected stuck-at faults,selected transition faults selectively launched from shift or launchedfrom capture, selected path-delay faults selectively launched from shiftor launched from capture, selected IDDQ (IDD quiescent current) faults,and selected bridging faults.
 53. An electronic design automation systemcomprising: a processor; a bus coupled to said processor; and acomputer-readable memory coupled to said bus and havingcomputer-readable program code embodied therein for causing a computersystem to perform a method for generating stimuli and test responses fortesting faults in a scan-based integrated circuit in a selectedscan-test mode or a selected self-test mode, the scan-based integratedcircuit containing a plurality of scan chains, N clock domains, and Ccross-clock domain blocks, each scan chain comprising multiple scancells coupled in series, each clock domain having one capture clock,each cross-clock domain block comprising a combinational logic network;said method comprising the computer implemented steps of: (a) compilinga HDL (hardware description language) code modeled at RTL(register-transfer level) or at gate-level that represents saidscan-based integrated circuit into a sequential circuit model; (b)specifying input constraints on said scan-based integrated circuitduring a shift and capture operation; (c) specifying a clock grouping tomap said N clock domains into G clock domain groups, where N>G>1; (d)transforming said sequential circuit model into an equivalentcombinational circuit model according to said input constraints and saidclock grouping, by selectively performing circuit expansion on selectedcross-clock domain blocks and selected clock domains embedded completelywithin selected clock domain groups, and selectively performing circuitexpansion on selected cross-clock domain blocks across selected clockdomain groups, said selected clock domain groups in said G clock domaingroups, said selected clock domains in said N clock domains, and saidselected cross-clock domain blocks in said C cross-clock domain blocks;and (e) generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints.
 54. The system of claim 53, wherein said specifying a clockgrouping to map said N clock domains into G clock domain groups furthercomprises automatically generating said clock grouping based on saidsequential circuit model and said input constraints.
 55. The system ofclaim 53, wherein said generating said stimuli and said test responseson said equivalent combinational circuit model according to said inputconstraints further comprises performing fault simulation on saidequivalent combinational circuit model selectively using a selected setof predetermined patterns as said stimuli and said test responses insaid selected scan-test mode, or a selected set of pseudorandom patternsas said stimuli and said test responses in said selected self-test mode.56. The system of claim 55, wherein said performing fault simulation onsaid equivalent combinational circuit model further comprisesselectively using a one-hot method to perform said fault simulation on aplurality of selected first unexpanded blocks, wherein each saidselected first unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 57. The system of claim 56, whereinsaid one-hot method further comprises testing said plurality of selectedfirst unexpanded blocks one at a time by selectively applying a selectedcapture clock connected to one or more said selected first unexpandedblocks while disabling all other capture clocks connected to other saidselected first unexpanded blocks during a selected capture operation.58. The system of claim 55, wherein said performing fault simulation onsaid equivalent combinational circuit model further comprisesselectively using a constrained-value method to perform said faultsimulation on a plurality of selected second unexpanded blocks, whereineach said selected second unexpanded block is a clock domain in said Nclock domains that is not in said selected clock domains, or across-clock domain block in said C cross-clock domain blocks that is notin said selected cross-clock domain blocks.
 59. The system of claim 58,wherein said constrained-value method further comprises testing saidplurality of selected second unexpanded blocks by setting constrained(‘0’, ‘1’, ‘X’) values on all said plurality of selected secondunexpanded blocks and applying all capture clocks connected to saidplurality of selected second unexpanded blocks simultaneously during aselected capture operation.
 60. The system of claim 55, wherein saidperforming fault simulation on said equivalent combinational circuitmodel further comprises selectively using a multi-timeframe faultsimulation method to perform said fault simulation on a plurality ofselected third unexpanded blocks, wherein each said selected thirdunexpanded block is a clock domain in said N clock domains that is notin said selected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 61. The system of claim 60, wherein said multi-timeframefault simulation method further comprises testing said plurality ofselected third unexpanded blocks by performing said fault simulation onsaid selected third unexpanded blocks by applying all capture clocksconnected to said selected third unexpanded blocks sequentially during aselected capture operation.
 62. The system of claim 53, wherein saidgenerating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints furthercomprises performing combinational ATPG (automatic test patterngeneration) on said equivalent combinational circuit model to generatesaid stimuli and said test responses in said selected scan-test mode.63. The system of claim 62, wherein said performing combinational ATPGon said equivalent combinational circuit model further comprisesselectively using a one-hot method to perform said fault simulation on aplurality of selected fourth unexpanded blocks, wherein each saidselected fourth unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that Is not in saidselected cross-clock domain blocks.
 64. The system of claim 63, whereinsaid one-hot method further comprises testing said plurality of selectedfourth unexpanded blocks one at a time by selectively applying aselected capture clock connected to one or more said selected fourthunexpanded blocks while disabling all other capture clocks connected toother said selected fourth unexpanded blocks during a selected captureoperation.
 65. The system of claim 62, wherein said performingcombinational ATPG on said equivalent combinational circuit modelfurther comprises selectively using a constrained-value method toperform said fault simulation on a plurality of selected fifthunexpanded blocks, wherein each said selected fifth unexpanded block isa clock domain in said N clock domains that is not in said selectedclock domains, or a cross-clock domain block in said C cross-clockdomain blocks that is not in said selected cross-clock domain blocks.66. The system of claim 65, wherein said constrained-value methodfurther comprises testing said plurality of selected second unexpandedblocks by setting constrained (‘0’, ‘1’, ‘X’) values on all saidplurality of selected fifth unexpanded blocks and applying all captureclocks connected to said plurality of selected fifth unexpanded blockssimultaneously during a selected capture operation.
 67. The system ofclaim 62, wherein said performing combinational ATPG on said equivalentcombinational circuit model further comprises selectively using amulti-timeframe fault simulation method to perform said fault simulationon a plurality of selected sixth unexpanded blocks, wherein each saidselected sixth unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 68. The system of claim 67, whereinsaid multi-timeframe fault simulation method further comprises testingsaid plurality of selected sixth unexpanded blocks by performing saidfault simulation on said selected sixth unexpanded blocks by applyingall capture clocks connected to said selected sixth unexpanded blockssequentially during a selected capture operation.
 69. The system ofclaim 53, wherein said specifying input constraints on said scan-basedintegrated circuit further comprises specifying an ordered sequence ofselected capture clocks in said capture operation.
 70. The system ofclaim 69, wherein said specifying an ordered sequence of selectedcapture clocks further comprises performing clock-domain analysis onsaid sequential circuit model for generating an optimal ordered sequenceof selected capture clocks automatically.
 71. The system of claim 70,wherein said performing clock-domain analysis on said sequential circuitmodel for generating an optimal ordered sequence of selected captureclocks further comprises the computer implemented steps of: (f)constructing a domain-interconnect graph comprising a plurality ofvertexes and arcs, each said vertex denoting one of said N clockdomains, and each said arc denoting one of said C cross-clock domains;and (g) analyzing said domain-interconnect graph to find said optimalordered sequence of capture clocks.
 72. The system of claim 71, whereinanalyzing said domain-interconnect graph to find said optimal orderedsequence of capture clocks further comprises the computer implementedsteps of: (h) breaking one selected arc from each vertex-pair withbi-directional links to form a directed graph; and (i) levelizing saiddirected graph to obtain said optimal ordered sequence of captureclocks.
 73. The system of claim 72, wherein said levelizing saiddirected graph to obtain said optimal ordered sequence of capture clocksfurther comprises analyzing said directed graph to determine whichselected vertexes (or selected clock domains) do not interact each otherdirectly or indirectly, and selectively replacing said capture clockscontrolling said selected clock domains with one or more grouped captureclocks.
 74. The system of claim 70, wherein said performing clock-domainanalysis on said sequential circuit model for generating an optimalordered sequence of capture clocks further comprises applying saidoptimal ordered sequence of capture clocks in reverse order.
 75. Thesystem of claim 74, wherein said applying said optimal ordered sequenceof capture clocks in reverse order further comprises removing one ormore selected capture clocks from said optimal ordered sequence ofcapture clocks in reverse order.
 76. The system of claim 53, whereinsaid generating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints furthercomprises generating HDL test benches according to said stimuli and saidtest responses for verifying the correctness of said scan-basedintegrated circuit using simulation methods.
 77. The system of claim 53,wherein said generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints further comprises generating ATE (automatic test equipment)test programs according to said stimuli and said test responses forverifying the correctness of said scan-based integrated circuit in saidATE.
 78. The system of claim 53, wherein said faults further includeselected stuck-at faults, selected transition faults selectivelylaunched from shift or launched from capture, selected path-delay faultsselectively launched from shift or launched from capture, selected IDDQ(IDD quiescent current) faults, and selected bridging faults.
 79. Amethod for generating stimuli and test responses for testing faults in ascan-based integrated circuit in a selected scan-test mode or a selectedself-test mode, the scan-based integrated circuit containing a pluralityof scan chains, N clock domains, and C cross-clock domain blocks, eachscan chain comprising multiple scan cells coupled in series, each clockdomain having one capture clock, each cross-clock domain blockcomprising a combinational logic network; said method comprising thecomputer implemented steps of: (a) compiling a HDL (hardware descriptionlanguage) code modeled at RTL (register-transfer level) or at gate-levelthat represents said scan-based integrated circuit into a sequentialcircuit model; (b) specifying input constraints on said scan-basedintegrated circuit during a shift and capture operation; (c) specifyinga clock grouping to map said N clock domains into G clock domain groups,where N>G>1; (d) transforming said sequential circuit model into anequivalent combinational circuit model according to said inputconstraints; and (e) generating said stimuli and said test responses onsaid equivalent combinational circuit model according to said inputconstraints and said clock grouping, by selectively performing amulti-timeframe fault simulation on selected cross-clock domain blocksand selected clock domains embedded completely within selected clockdomain groups, and selectively performing a multi-timeframe faultsimulation on selected cross-clock domain blocks across selected clockdomain groups, said selected clock domain groups in said G clock domaingroups, said selected clock domains in said N clock domains, and saidselected cross-clock domain blocks in said C cross-clock domain blocks.80. The method of claim 79, wherein said specifying a clock grouping tomap said N clock domains into G clock domain groups further comprisesautomatically generating said clock grouping based on said sequentialcircuit model and said input constraints.
 81. The method of claim 79,wherein said generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints and said clock grouping further comprises performing faultsimulation on said equivalent combinational circuit model selectivelyusing a selected set of predetermined patterns as said stimuli and saidtest responses in said selected scan-test mode, or a selected set ofpseudorandom patterns as said stimuli and said test responses in saidselected self-test mode.
 82. The method of claim 81, wherein saidperforming fault simulation on said equivalent combinational circuitmodel further comprises selectively using a one-hot method to performsaid fault simulation on a plurality of selected first unexpandedblocks, wherein each said selected first unexpanded block is a clockdomain in said N clock domains that is not in said selected clockdomains, or a cross-clock domain block in said C cross-clock domainblocks that is not in said selected cross-clock domain blocks.
 83. Themethod of claim 82, wherein said one-hot method further comprisestesting said plurality of selected first unexpanded blocks one at a timeby selectively applying a selected capture clock connected to one ormore said selected first unexpanded blocks while disabling all othercapture clocks connected to other said selected first unexpanded blocksduring a selected capture operation.
 84. The method of claim 81, whereinsaid performing fault simulation on said equivalent combinationalcircuit model further comprises selectively using a constrained-valuemethod to perform said fault simulation on a plurality of selectedsecond unexpanded blocks, wherein each said selected second unexpandedblock is a clock domain in said N clock domains that is not in saidselected clock domains, or a cross-clock domain block in said Ccross-clock domain blocks that is not in said selected cross-clockdomain blocks.
 85. The method of claim 84, wherein saidconstrained-value method further comprises testing said plurality ofselected second unexpanded blocks by setting constrained (‘0’, ‘1’, ‘X’)values on all said plurality of selected second unexpanded blocks andapplying all capture clocks connected to said plurality of selectedsecond unexpanded blocks simultaneously during a selected captureoperation.
 86. The method of claim 81, wherein said generating saidstimuli and said test responses on said equivalent combinational circuitmodel according to said input constraints and said clock groupingfurther comprises performing combinational ATPG (automatic test patterngeneration) on said equivalent combinational circuit model to generatesaid stimuli and said test responses in said selected scan-test mode.87. The method of claim 86, wherein said performing combinational ATPGon said equivalent combinational circuit model further comprisesselectively using a one-hot method to perform said fault simulation on aplurality of selected fourth unexpanded blocks, wherein each saidselected fourth unexpanded block is a clock domain in said N clockdomains that is not in said selected clock domains, or a cross-clockdomain block in said C cross-clock domain blocks that is not in saidselected cross-clock domain blocks.
 88. The method of claim 87, whereinsaid one-hot method further comprises testing said plurality of selectedfourth unexpanded blocks one at a time by selectively applying aselected capture clock connected to one or more said selected fourthunexpanded blocks while disabling all other capture clocks connected toother said selected fourth unexpanded blocks during a selected captureoperation.
 89. The method of claim 86, wherein said performingcombinational ATPG on said equivalent combinational circuit modelfurther comprises selectively using a constrained-value method toperform said fault simulation on a plurality of selected fifthunexpanded blocks, wherein each said selected fifth unexpanded block isa clock domain in said N clock domains that is not in said selectedclock domains, or a cross-clock domain block in said C cross-clockdomain blocks that is not in said selected cross-clock domain blocks.90. The method of claim 89, wherein said constrained-value methodfurther comprises testing said plurality of selected second unexpandedblocks by setting constrained (‘0’, ‘1’, ‘X’) values on all saidplurality of selected fifth unexpanded blocks and applying all captureclocks connected to said plurality of selected fifth unexpanded blockssimultaneously during a selected capture operation.
 91. The method ofclaim 79, wherein said specifying input constraints on said scan-basedintegrated circuit further comprises specifying an ordered sequence ofselected capture clocks in said capture operation.
 92. The method ofclaim 91, wherein said specifying an ordered sequence of selectedcapture clocks further comprises performing clock-domain analysis onsaid sequential circuit model for generating an optimal ordered sequenceof selected capture clocks automatically.
 93. The method of claim 92,wherein said performing clock-domain analysis on said sequential circuitmodel for generating an optimal ordered sequence of selected captureclocks further comprises the computer implemented steps of: (f)constructing a domain-interconnect graph comprising a plurality ofvertexes and arcs, each said vertex denoting one of said N clockdomains, and each said arc denoting one of said C cross-clock domains;and (g) analyzing said domain-interconnect graph to find said optimalordered sequence of capture clocks.
 94. The method of claim 93, whereinanalyzing said domain-interconnect graph to find said optimal orderedsequence of capture clocks further comprises the computer implementedsteps of: (h) breaking one selected arc from each vertex-pair withbi-directional links to form a directed graph; and (i) levelizing saiddirected graph to obtain said optimal ordered sequence of captureclocks.
 95. The method of claim 94, wherein said levelizing saiddirected graph to obtain said optimal ordered sequence of capture clocksfurther comprises analyzing said directed graph to determine whichselected vertexes (or selected clock domains) do not interact each otherdirectly or indirectly, and selectively replacing said capture clockscontrolling said selected clock domains with one or more grouped captureclocks.
 96. The method of claim 91, wherein said performing clock-domainanalysis on said sequential circuit model for generating an optimalordered sequence of capture clocks further comprises applying saidoptimal ordered sequence of capture clocks in reverse order.
 97. Themethod of claim 96, wherein said applying said optimal ordered sequenceof capture clocks in reverse order further comprises removing one ormore selected capture clocks from said optimal ordered sequence ofcapture clocks in reverse order.
 98. The method of claim 79, whereinsaid generating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints furthercomprises generating HDL test benches according to said stimuli and saidtest responses for verifying the correctness of said scan-basedintegrated circuit using simulation methods.
 99. The method of claim 79,wherein said generating said stimuli and said test responses on saidequivalent combinational circuit model according to said inputconstraints further comprises generating ATE (automatic test equipment)test programs according to said stimuli and said test responses forverifying the correctness of said scan-based integrated circuit in saidATE.
 100. The method of claim 79, wherein said faults further includeselected stuck-at faults, selected transition faults selectivelylaunched from shift or launched from capture, selected path-delay faultsselectively launched from shift or launched from capture, selected IDDQ(IDD quiescent current) faults, and selected bridging faults.
 101. Acomputer-readable memory having computer-readable program code embodiedtherein for causing a computer system to perform a method for generatingstimuli and test responses for testing faults in a scan-based integratedcircuit in a selected scan-test mode or a selected self-test mode, thescan-based integrated circuit containing a plurality of scan chains, Nclock domains, and C cross-clock domain blocks, each scan chaincomprising multiple scan cells coupled in series, each clock domainhaving one capture clock, each cross-clock domain block comprising acombinational logic network; said method comprising the computerimplemented steps of: (a) compiling a HDL (hardware descriptionlanguage) code modeled at RTL (register-transfer level) or at gate-levelthat represents said scan-based integrated circuit into a sequentialcircuit model; (b) specifying input constraints on said scan-basedintegrated circuit during a shift and capture operation; (c) specifyinga clock grouping to map said N clock domains into G clock domain groups,where N>G>1; (d) transforming said sequential circuit model into anequivalent combinational circuit model according to said inputconstraints; and (e) generating said stimuli and said test responses onsaid equivalent combinational circuit model according to said inputconstraints and said clock grouping, by selectively performing amulti-timeframe fault simulation on selected cross-clock domain blocksand selected clock domains embedded completely within selected clockdomain groups, and selectively performing a multi-timeframe faultsimulation on selected cross-clock domain blocks across selected clockdomain groups, said selected clock domain groups in said G clock domaingroups, said selected clock domains in said N clock domains, and saidselected cross-clock domain blocks in said C cross-clock domain blocks.102. An electronic design automation system comprising: a processor; abus coupled to said processor; and a computer-readable memory coupled tosaid bus and having computer-readable program code embodied therein forcausing a computer system to perform a method for generating stimuli andtest responses for testing faults in a scan-based integrated circuit ina selected scan-test mode or a selected self-test mode, the scan-basedintegrated circuit containing a plurality of scan chains, N clockdomains, and C cross-clock domain blocks, each scan chain comprisingmultiple scan cells coupled in series, each clock domain having onecapture clock, each cross-clock domain block comprising a combinationallogic network; said method comprising the computer implemented steps of:(a) compiling a HDL (hardware description language) code modeled at RTL(register-transfer level) or at gate-level that represents saidscan-based integrated circuit into a sequential circuit model; (b)specifying input constraints on said scan-based integrated circuitduring a shift and capture operation; (c) specifying a clock grouping tomap said N clock domains into G clock domain groups, where N>G>1; (d)transforming said sequential circuit model into an equivalentcombinational circuit model according to said input constraints; and (e)generating said stimuli and said test responses on said equivalentcombinational circuit model according to said input constraints and saidclock grouping, by selectively performing a multi-timeframe faultsimulation on selected cross-clock domain blocks and selected clockdomains embedded completely within selected clock domain groups, andselectively performing a multi-timeframe fault simulation on selectedcross-clock domain blocks across selected clock domain groups, saidselected clock domain groups in said G clock domain groups, saidselected clock domains in said N clock domains, and said selectedcross-clock domain blocks in said C cross-clock domain blocks.